package com.ruoyi.basedata.service;

import cn.hutool.core.collection.CollUtil;
import com.ruoyi.basedata.domain.UsersXb;
import com.ruoyi.common.utils.CollectionUtils;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * 小用户档案Service接口
 * 
 * @author ruoyi
 * @date 2023-09-07
 */
public interface IUsersXbService 
{
    /**
     * 查询小用户档案
     * 
     * @param ID 小用户档案主键
     * @return 小用户档案
     */
    public UsersXb selectUsersXbByID(Long ID);

    /**
     * 查询小用户档案列表
     * 
     * @param usersXb 小用户档案
     * @return 小用户档案集合
     */
    public List<UsersXb> selectUsersXbList(UsersXb usersXb);
    public List<UsersXb> selectUsersXbList(Collection<String> terminalIdList);

    /**
     * 新增小用户档案
     * 
     * @param usersXb 小用户档案
     * @return 结果
     */
    public int insertUsersXb(UsersXb usersXb);

    /**
     * 修改小用户档案
     * 
     * @param usersXb 小用户档案
     * @return 结果
     */
    public int updateUsersXb(UsersXb usersXb);

    /**
     * 批量删除小用户档案
     * 
     * @param IDs 需要删除的小用户档案主键集合
     * @return 结果
     */
    public int deleteUsersXbByIDs(Long[] IDs);

    /**
     * 删除小用户档案信息
     * 
     * @param ID 小用户档案主键
     * @return 结果
     */
    public int deleteUsersXbByID(Long ID);


    default Map<String, UsersXb> getUserMap(Collection<String> userIdList) {
        if (CollUtil.isEmpty(userIdList)) {
            return Collections.emptyMap();
        }
        List<UsersXb> usersXbs = selectUsersXbList(userIdList);
        return CollectionUtils.convertMap(usersXbs,UsersXb::getUserId);
    }

    String importUser(List<UsersXb> userList, boolean updateSupport, String operName);
}
